package com.thwj.project.pay.domain;

    import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.thwj.common.annotation.Excel;
import lombok.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

;

/**
 * 支付单对象 wx_pay
 *
 * @author generate
 * @date 2023-06-10
 */

@Getter
@Setter
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("wx_pay")
public class WxPay extends Model<WxPay>{
private static final long serialVersionUID=1L;

    /** 主键 */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 订单编号 A活动订单 V会员订单 */
            @Excel(name = "订单编号 A活动订单 V会员订单")
    private String orderNumber;

    /** 支付单来源（1：活动报名  2：会员订单） */
            @Excel(name = "支付单来源", readConverterExp = "1=：活动报名,2=：会员订单")
    private Integer sourceType;

    /** 来源id */
            @Excel(name = "来源id")
    private Long sourceId;

    /** 外部交易单号 */
            @Excel(name = "外部交易单号")
    private String outTradeNo;

    /** 总计金额 */
            @Excel(name = "总计金额")
    private BigDecimal totalMoney;

    /** 用户主键 */
            @Excel(name = "用户主键")
    private Long userId;

    /** 应付金额 */
            @Excel(name = "应付金额")
    private BigDecimal payMoney;

    /** 实付金额 */
            @Excel(name = "实付金额")
    private BigDecimal actualMoney;

    /** 支付状态 */
            @Excel(name = "支付状态")
    private Integer status;

    /** 支付成功时间 */
            @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
            @Excel(name = "支付成功时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date paySuccessDate;

    /** 创建时间 */
            @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
            @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createDate;




    @Override
    public Serializable pkVal() {
        return this.id;
    }
}
